Esempio CNC 02: Decodifica in linea con variabili
Vedi il CNC02_online.project
progetto di esempio nella directory di installazione di CODESYS sotto ..\CODESYS SoftMotion\Examples
.
L'esempio mostra come utilizzare le variabili per decodificare un programma CNC.
Creazione di un programma NC nell'editor CNC
Creare un
CNCOnline
programma con a SoftMotion controllore.Crea un elenco di variabili globali e dichiara due variabili.
VAR_GLOBAL g_x: REAL:=100; g_y:REAL:=50; END_VAR
Inserisci a Programma CNC oggetto chiamato
Example
.Seleziona il Implementazione
Din66025
e il Modalità di compilazioneSMC_CNC_REF
. Questa modalità è necessaria perché si utilizzano variabili nel programma.Specificare i seguenti blocchi di movimento:
Editor CNC:
Creazione di un'interfaccia dell'azionamento e configurazione del PLC
Definire una struttura dell'unità (ad es CNCdirect
).
Creazione di un programma IEC
Aggiungi un POU (CFC) denominato
Path
all'applicazione.La decodifica del programma NC per OUTQUEUE e il controllo della velocità avvengono nel
Path
programma.chiamando
SMC_CheckVelocities
è obbligatorio.CFC:
Aggiungi un POU (CFC) denominato
Ipo
all'applicazione.Questo programma è quasi identico al
CNCdirect
progetto campione. Tuttavia, i dati immessi dall'interpolatore non corrispondono ai nomi dei programmi CNC (ADR(Example)
), ma all'output OutQueue dei blocchi funzione di preelaborazione del percorso (checkVel.poqDataOut
).
Creazione di un'attività per la preelaborazione del percorso
Perché hai selezionato la modalità di compilazione SMC_CNC_REF
, è necessario eseguire la decodifica e la preelaborazione del percorso nel programma IEC. Questo calcolo richiede tempo. Non deve essere eseguito nel ciclo dell'interpolatore poiché per ogni richiamo del decoder viene generato un oggetto vettoriale e questo oggetto viene generalmente utilizzato per molti richiami dell'interpolatore. Dovresti sostituire questa operazione con un'attività con priorità bassa e chiamate meno frequenti.
Creare un
PathTask
compito.Definire i seguenti parametri:
Priorità: 10
Intervallo: T#30ms
Aggiungi il
Path
POU al compito.

Nel task lento, all'inizio viene generato circa un oggetto GEOINFO per ciclo. Questo oggetto è memorizzato nella struttura OUTQUEUE del blocco funzione del decodificatore. Se OUTQUEUE è pieno, i blocchi funzione del task lento si interrompono fino a quando OUTQUEUE non è più pieno. Questo accade non appena l'attività veloce elabora il primo oggetto GEOINFO e lo elimina da OUTQUEUE.
Quindi i blocchi funzione del task lento diventano nuovamente attivi e riempiono la struttura OUTQUEUE.
Nel compito veloce, un punto di percorso dalla struttura OUTQUEUE, che il
DataIn
l'input punta a, viene calcolato ed elaborato in ogni ciclo. Poiché un oggetto GEOINFO è generalmente costituito da più punti di percorso, sono necessari alcuni cicli prima che il primo oggetto GEOINFO venga elaborato e cancellato automaticamente dall'interpolatore.Poiché l'elaborazione di un oggetto GEOINFO dura diversi cicli rispetto alla sua creazione, il task lento può essere chiamato meno frequentemente rispetto al task veloce.
Tuttavia, i tempi del task devono essere selezionati in modo che un numero sufficiente di oggetti GEOINFO sia sempre memorizzato nell'ultimo OUTQUEUE del task lento, prevenendo così il verificarsi di eventuali underrun di dati. Questo accade quando non ci sono più oggetti GEOINFO disponibili per l'interpolatore da DataIn e la fine del percorso non è stata ancora raggiunta. In questo caso, l'interpolatore rallenta e si ferma fino a quando non sono nuovamente disponibili nuovi elementi di dati.
Creazione di un'interfaccia operativa e di un'interfaccia di test
La visualizzazione corrisponde al CNCdirect.project
progetto campione. Aggiungere modelli aggiuntivi ai nuovi blocchi funzione (SMC_NCDecoder
e SMC_CheckVelocities
). Crea un display anche per le variabili globali g_x
e g_y
in modo da poterne verificare il funzionamento in seguito durante la messa in servizio.
La messa in produzione
Compila e avvia il programma creato. Il programma esegue il movimento del CNC non appena il Execute
è stato impostato l'ingresso del decoder e dell'interpolatore. Se si modificano i valori delle variabili globali, vengono utilizzati al riavvio del decoder e il percorso viene adattato di conseguenza. Monitorare la funzione del Append
anche l'ingresso del decoder.